The present invention relates to apparatus and method for decoding an information page having header information and page data and, more particularly, to apparatus and method for decoding a page of subtitle data reproduced from a record medium and including character data representing a subtitle to be superimposed on a video image and a page header which includes, inter alia, subtitle presentation time data.
FIG. 1 is a block diagram of a data encoding device which stores compressed (e.g., MPEG formatted) video, audio and subtitle data on an optical disk and a decoding device which reproduces and decodes the stored video, audio and subtitle data from the optical disk. An encoding device, such as shown in FIG. 1, generally includes an image encoder 101, an audio encoder 102, a subtitle encoder 103, a multiplexer 104, an error correction circuit 105, a modulator 106, and a cutting device 107. Digital image data, digital audio data, and digital subtitle data are supplied to encoders 101, 102 and 103, respectively, which encode the respectively supplied data in a manner well known in the art, and the encoded image, audio and subtitle data are combined in multiplexer 104 and error correction data is added thereto in error correction circuit 105. The data is modulated in circuit 106 and is stored on a master optical disk 108 by means of cutting device 107. Since the operations of each of the circuits 101-107 of the encoding device of FIG. 1 are well known in the art, further description thereof is omitted herein.
An existing decoding device, such as shown also in FIG. 1, generally includes a pick-up circuit 110, a waveform equalizer/PLL circuit 111, a demodulator 112, an error correction circuit 113, a buffer 114, a demultiplexer 115, decoders 116, 117 and 118, a mixing circuit 119, digital-to-analog (D/A) converters 120, 121 and a host controller 124. Data stored in an optical disk 109, which is a distributed copy of master disk 108, is "picked-up" (i.e., reproduced) by pick-up circuit 110 and waveform equalized in circuit 111. A data clock timing signal is generated from the reproduced data by waveform equalizer/PLL circuit 111, the reproduced data is demodulated by demodulator circuit 112, and any errors that occur in the reproduced data are corrected in error correction circuit 113. The demodulated error corrected data is temporarily stored in buffer 114 which supplies the data stored therein to demultiplexer 115 which separates the reproduced data into respective image, audio and subtitle components and which supplies the image, audio and subtitle data to image decoder 116, audio decoder 117 and subtitle decoder 118, respectively. Decoders 116, 117 and 118 decode the respectively supplied data, and the decoded image and subtitle data are combined in mixer 119 prior to being supplied to D/A converter 120. The decoded audio data is supplied to D/A converter 121. D/A converters 120, 121 convert the digital video data (including both image and subtitle data) and the digital audio data, respectively, to respective analog signals which may be displayed and reproduced by, for example, an image display device 122 and a loud speaker 123. As is well known, host controller 124 controls the operations of the various circuits of the decoding device, including decoders 116, 117 and 118 and demultiplexer 115. Except for subtitle decoder 118, the operations of circuits 110-117, 119-121 and 124 of the decoding device shown in block diagram form in FIG. 1 are well known in the art and further description thereof is omitted herein except where necessary for an understanding of the present invention.
FIGS. 2A and 2B illustrate a format of subtitle data stored on an optical disk wherein subtitle information which is superimposed on a video picture is referred to as a "page" and wherein each page usually is comprised of 1 to 3 lines of character information and displayed with the video picture for a time period of several seconds. Referring to FIG. 2A, each page of subtitle data is shown as including a page header having a data amount h followed by character data. Each page header, shown in detail in FIG. 2B, includes a leading code for identifying the page header, PTSS (presentation time stamp start) data which identifies the time at which the subtitle is presented (i.e., displayed), PTSE (presentation time stamp end) data which identifies the superimposition termination time of the subtitle, a page data length which identifies the amount of data included in the page, image presentation position data which identifies the position in the video image at which the subtitle is to be located (e.g., horizontal and vertical positions, height, width, etc.), as well as other information. The length h of each page header is fixed.
The character data of each page represents the subtitle that is displayed on the video picture and includes both character and color information. The character data is either compressed or uncompressed digital data and generally is not constant in length (i.e., data amount).
FIG. 2C illustrates the packet-like structure of the video, audio and subtitle data reproduced from the optical disk, in which each packet of image data (V.sub.J, V.sub.J+1 . . . ) is followed by a packet of audio data (A.sub.K, A.sub.K+1 . . . ) which, in turn, is followed by a packet of subtitle data (S.sub.I, S.sub.I+1 . . . ). Each subtitle data packet S generally does not contain an entire page of subtitle data, and instead, each subtitle page is comprised of plural subtitle packets. Demultiplexer 115, shown in FIG. 1, converts the reproduced digital data having the data structure shown in FIG. 2C to subtitle data having the data structure shown in FIGS. 2A and 2B, and supplies the converted data to subtitle decoder 118.
Host controller 124 synchronously controls decoders 116, 117 and 118 utilizing a reference clock (not shown) so that each subtitle is superimposed on the video picture at a reference clock time equal to the time indicated by the respective presentation start time PTSS until the time indicated by the respective presentation end time PTSE.
FIG. 3 is a block diagram of subtitle decoder 118 which receives pages of subtitle information from demultiplexer 115. Each page of subtitle data is supplied to a header detector circuit 130 which detects and extracts therefrom the page header and supplies the extracted page header to a subtitle controller 131, and supplies the character data to the input terminal of a switch 133. Switch 133 supplies the character data either to a first memory bank 132a via output terminal (a) or to a second memory bank 132b via output terminal (b). Memory banks 132a and 132b are included in a code buffer memory 132 and each has a storage capacity equal to the maximum amount of character data that can be supplied in a single page. Switch 133 is controlled by subtitle controller 131 which controls the switch to supply character data of a first supplied page to first memory bank 132a, which stores the character data therein, and to supply character data of a successively supplied page to memory bank 132b.
Subtitle controller 131 receives from header detector circuit 130 page header data of a supplied page of subtitle data, such page header including presentation start time data PTSS and presentation end time data PTSE, as previously discussed. Subtitle controller 131 supplies the PTSS and PTSE data, as well as other data included in the page header, to host controller 124 which, in response thereto and to the value of the reference clock, supplies a presentation start instruction to subtitle controller 131. In response to the presentation start instruction, subtitle controller 131 controls a second switch 134 to switch its input to that memory bank 132a or 132b containing the appropriate character data. At the same time, the appropriate memory bank is controlled to read out the character data stored therein and to supply the read out character data, via switch 134, to expander circuit 135. The readout character data, if in compressed form, is expanded in circuit 135 and supplied to mixer 119 which superimposes the character data on the video picture. The character data repeatedly is read out from code buffer memory 132, expanded and supplied to mixer 119 until the time identified by presentation end time data PTSE is reached, at which time host controller 124 supplies a presentation end command to subtitle controller 131 which, in response thereto, controls both code buffer memory 132 and switch 134 to terminate the reading out and supplying of the stored character data.
When character data of a first page is being read from, for example, memory bank 132a and being supplied to mixer circuit 119, the page header of the successively supplied page of subtitle data is detected and extracted in circuit 130 and supplied to subtitle controller 131, and the character data of the successively supplied page is stored in the other memory bank, for example, memory bank 132b. When the presentation start time PTSS of the second page is reached, subtitle decoder 118 is ready to read out and supply character data of the second page. At this time, (i.e., while the character data of the second page is read out and supplied to mixer circuit 119) subtitle controller 131 controls switch 133 to switch its output to terminal a so that the character data of a third supplied page is stored in memory bank 132a.
One problem with a subtitle decoder having the block structure shown in FIG. 3 is its general inability to store more than two pages of character data at a time and its general inability to maximize the amount of data that can be stored in its buffer memory. Even if the buffer memory included a third or even a fourth memory bank, such a subtitle decoder still would not maximize memory utilization since each page of subtitle data which has less data than the size of a memory bank still requires the use of an entire memory bank (e.g., memory bank 132a). Moreover, switching between three or more memory banks to provide simultaneous reading and writing therefrom and to is complex.
FIG. 4 is a block diagram of another subtitle decoder 118 in which a "ring" type code buffer 202 is utilized to store pages of character data. Subtitle data output from demultiplexer 115 is supplied to header detector circuit 200 which detects and extracts the page header of each page in a manner similar to that of header detector 130, previously discussed. One page of character data (without the page header) is supplied and stored in code buffer 202 at a "top of page" address therein and the "top of page" address is stored in address register 203. Similar to subtitle controller 131 shown in FIG. 3, subtitle controller 201 supplies the presentation start time data PTSS and the presentation end time data PTSE to host controller 124 and when host controller 124 supplies a presentation start instruction to subtitle controller 201 (when the reference clock value equals the presentation start time PTSS), subtitle controller 201 reads the top of page address from address register 203 corresponding to the particular subtitle to be displayed. The character data is read from code buffer 202 and expanded, if necessary, in expander circuit 204 in a manner similar to that of expander circuit 135, previously discussed. When host controller 124 supplies a presentation end instruction to subtitle controller 201, code buffer 202 is controlled to stop reproducing and supplying the character data stored therein.
At this time, the page header of a successively supplied page of title data is already stored in address register 203 and the character data thereof is stored in code buffer 202. Furthermore, additional pages of subtitle data also may be stored in the subtitle decoder. Subtitle controller 201 supplies to host controller 124 presentation start time data PTSS and presentation end time data PTSE stored in address register 203 corresponding to a subsequent page of subtitle data. Successive pages of character data similarly are read from code buffer 202 in the above described manner.
Although the subtitle decoder of FIG. 4 utilizes a ring type buffer memory which, in theory, maximizes storage capacity of variable length pages of subtitle data, since the page header of each page is stored in address register 203, the maximum number of page headers to be stored therein must be predetermined in order to properly carry out the above discussed operations. In other words, although code buffer 202 itself does not require a predetermined maximum number of pages of subtitle data that can be stored therein, the storage of the page headers in address register 203 requires the maximum number of page headers to be stored therein to be predefined which, in turn, sets a limit to the maximum number of pages of character data that can be stored in the code buffer.